Verifying Programs via Intermediate Interpretation
نویسندگان
چکیده
We explore an approach to verification of programs via program transformation applied to an interpreter of a programming language. A specialization technique known as Turchin’s supercompilation is used to specialize some interpreters with respect to the program models. We show that several safety properties of functional programs modeling a class of cache coherence protocols can be proved by a supercompiler and compare the results with our earlier work on direct verification via supercompilation not using intermediate interpretation. Our approach was in part inspired by an earlier work by DeE. Angelis et al. (2014-2015) where verification via program transformation and intermediate interpretation was studied in the context of specialization of constraint logic programs.
منابع مشابه
Verification of Programs via Intermediate Interpretation
We explore an approach to verification of programs via program transformation applied to an interpreter of a programming language. A specialization technique known as Turchin’s supercompilation is used to specialize some interpreters with respect to the program models. We show that several safety properties of functional programs modeling a class of cache coherence protocols can be proved by a ...
متن کاملVerifying Partial Correctness of Logic Programs with Delay Declarations
In this paper we propose a method for verifying partial correctness of logic programs with delay declarations. The method is based on the notion of specialised derivation. It diiers from the deenition of SLD-derivation since more instantiated general uniiers are computed instead of standard mgus. The contribution of this paper follows from the observation that the derivations of logic programs ...
متن کاملSMACK: Decoupling Source Language Details from Verifier Implementations
A major obstacle to putting software verification research into practice is the high cost of developing the infrastructure enabling the application of verification algorithms to actual production code, in all of its complexity. Handling an entire programming language is a huge endeavor that few researchers are willing to undertake; even fewer could invest the effort to implement a verification ...
متن کاملVerifying Programs with Arrays and Lists
Automatically verifying safety properties of programs is a tough problem that has been tackled using many different approaches: rewriting systems, abstract interpretation, SMT solving, . . . Most techniques restrict themselves to programs operating on boolean and integer values and transposing them to infinite data structures such as arrays has not yet been satisfyingly achieved. Recent work in...
متن کاملHere be wyverns! Verifying LLVM bitcode with llStar
We present the llStar tool for the verification of programs written in bitcode, the intermediate language of the LLVM compiler infrastructure. The low-level nature of bitcode makes it a challenging target for automatic formal verification. Thanks to a novel adaptation of separation logic to bitcode’s memory model, and using the symbolic execution engine coreStar together with z3 as a backend, l...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- CoRR
دوره abs/1705.06738 شماره
صفحات -
تاریخ انتشار 2017